namespace JlPay.Sdk.Core
{
    /// <summary>
    /// 签名验证器接口
    /// </summary>
    public interface ISignVerifier
    {
        /// <summary>
        /// 签名
        /// </summary>
        /// <param name="method">HTTP方法</param>
        /// <param name="uri">请求URI</param>
        /// <param name="body">请求体</param>
        /// <returns>签名、时间戳、随机数</returns>
        (string sign, string timestamp, string nonce) Sign(string method, string uri, object? body);

        /// <summary>
        /// 验签
        /// </summary>
        /// <param name="method">HTTP方法</param>
        /// <param name="uri">请求URI</param>
        /// <param name="timestamp">时间戳</param>
        /// <param name="nonce">随机数</param>
        /// <param name="body">响应体</param>
        /// <param name="signature">签名</param>
        void Verify(string method, string uri, string timestamp, string nonce, object? body, string signature);
    }
} 